iT邦幫忙

2023 iThome 鐵人賽

DAY 10
0

在介紹 HDFS 的基本操作時,我們都是針對整個檔案進行操作,那假設今天有一個結構化的資料表,我們應該如何設計資料表在 hdfs 中的存儲、查詢資料表的內部資訊呢?Apache Hive 提供了一個不錯的 solution。

Hive 簡介

https://ithelp.ithome.com.tw/upload/images/20230925/20138939Jv8X0pUJFM.png

Hive 是一個運行在 HDFS 上的數據倉庫 (Data Warehouse),將數據結構化為表格形式,使用者可以使用 SQL-Like 語言(HiveQL)來進行數據的查詢與分析,由於將 SQL 查詢轉換為 MapReduce 作業,因此查詢性能較慢 (與 hBase 相比),多是被用在大數據的批處理計算上。

Hive 架構

Hive 是建構在 HDFS 與 MapReduce 之上的應用,用戶可以透過 Hive web UICLI 或是 Hive Client 來操作 Hive。

https://ithelp.ithome.com.tw/upload/images/20230925/20138939V02o5EuM8o.png

圖片來源: Hive Architecture - Javatpoint

  • Hive Client:外部應用程序與 Hive 建立遠程訪問的接口,支援多種程式語言,如 JavaPythonC++,Hive Client 中又包含:
    • Thrift Server:用來與其他程式語言溝通
    • JDBC Driver:用來與 Java 溝通
    • ODBC Driver:用來與其他資料庫溝通
  • Hive Server:接收 Hive Client 的請求並將其轉交給 Hive Driver。
  • Hive Driver:接收 Hive Client、Hive web UI 與 CLI 的查詢並將這些查詢傳遞給編譯器。
  • Hive Metastore:用於存儲有關表格結構、分區信息、列和數據位置的元數據(metadata)。

預告

明天將會進入 Hive 的安裝教學。

參考資料

Hive Architecture - Javatpoint


上一篇
Day09 - MapReduce with Python
下一篇
Day11 - Hive 安裝與設置
系列文
30天認識主流大數據框架:Hadoop + Spark + Flink30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言